package com.base.component.ai.platform.core.bo.common;

import java.util.List;

import com.base.core.head.dto.ai.MessageBaseDTO;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter@Setter@ToString
public class ChatCompletionsBO<T extends MessageBaseDTO> extends BaseCompletionsBO {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

    @Schema(description="会话Id(如果配置该值则会使用历史记录)")
    private String conversationId;
	
	@Schema(description="格式(text、json_object)")
	private String responseFormat;
	
    @Schema(description="随机值")
	private Float temperature;

    @Schema(description = """
    				转化为对应的Message System消息
					{
					    "role": "system",
					    "content": "内容"
					}
					""")
    private String systemPrompt;

    @Schema(description = """
    				转化为对应的Message User消息
    				{
					    "role": "user",
					    "content": "内容"
					}
					""")
    private String userPrompt;

    @Schema(description = """
    		消息内容
    		该值优先级大于systemPromot、userPrompt字段具体每个模型解析会不一样
    		""")
    private List<T> messages;

    @Schema(description="日志对象")
    private ChatCompletionsLogBO chatCompletionsLog;
    
}
